import { request } from '@/service/request';

// =============== Module Begin ===============

/** get module list */
export function fetchGetModuleList(params?: Api.System.ModuleSearchParams) {
  return request<Api.System.ModuleList>({
    url: '/sys_module/page',
    method: 'GET',
    params
  });
}

/** add module info */
export function fetchAddModule(data: Api.System.ModuleEdit) {
  return request<boolean>({
    url: '/sys_module/',
    method: 'POST',
    data
  });
}

/** update module info */
export function fetchUpdateModuleInfo(data: Api.System.ModuleEdit) {
  return request<boolean>({
    url: '/sys_module/',
    method: 'PUT',
    data
  });
}

/** edit delete module */
export function fetchDeleteModule(data: Api.Common.DeleteParams) {
  return request<boolean>({
    url: '/sys_module/',
    method: 'DELETE',
    data
  });
}

export function fetchGetAllModules() {
  return request<Api.System.Module[]>({
    url: '/sys_module/list',
    method: 'GET'
  });
}

export function fetchGetModuleOptions() {
  return request<CommonType.Option<string>[]>({
    url: '/sys_module/options',
    method: 'GET'
  });
}

// =============== Module End  ===============

// =============== ModuleMenu Begin ===============

export function fetchGetModuleMenuIds(moduleId: string) {
  return request<string[]>({
    url: `/sys_module_menu/menu/${moduleId}`,
    method: 'GET'
  });
}

export function fetchAddModuleMenu(data: Api.System.ModuleMenu) {
  return request<boolean>({
    url: '/sys_module_menu/',
    method: 'POST',
    data
  });
}

// =============== ModuleMenu End  ===============
